package edu.gdkm.demo;

public class Demo30 {
    public static void main(String[] args) {
        //凯撒密码
        //恺撒密码的替换方法是通过排列明文和密文字母表，密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如，当偏移量是左移3的时候（解密时的密钥就是3）：
        //明文字母表：ABCDEFGHIJKLMNOPQRSTUVWXYZ ；
        //密文字母表：DEFGHIJKLMNOPQRSTUVWXYZABC。
        //使用时，加密者查找明文字母表中需要加密的消息中的每一个字母所在位置，并且写下密文字母表中对应的字母。需要解密的人则根据事先已知的密钥反过来操作，得到原来的明文。例如：
        //明文：THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG ；
        //密文：WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ。
//        String 字符串 ===>char[] 字符数组
        String s="THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG";
        //char[] ss =new char[n];
//        String ss = new String(); //对象 ，引用类型

        char[] chs= s.toCharArray();
        for(int i=0;i<chs.length;i++){
            if(chs[i]!=' '){        //加密时，对空格不做处理
                chs[i]=(char)(chs[i]+3);
            }
        }
        System.out.print("加密后的密文：");
        for (int i = 0; i < chs.length; i++) {
            System.out.print(chs[i]);
        }
        System.out.println();
        Demo36.star(100);

        System.out.print("解密后的文字：");
        for(int i=0;i<chs.length;i++){
            if(chs[i]!=' ') {  //解密时，对空格不做处理
                chs[i] = (char) (chs[i] - 3);
            }
        }
        for (int i = 0; i < chs.length; i++) {
            System.out.print(chs[i]);
        }

    }
}
